package paneles;


import genetico.OpcionesGenetico;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
 * @author   Administrador
 */
public class DialogoParametroAG extends JFrame {
	private static final long serialVersionUID = -7276233988132179947L;
	OpcionesGenetico opciones= new OpcionesGenetico();  //  @jve:decl-index=0:
	/**
	 */
	private JPanel jContentPane = null;
	private JLabel jLabel = null;
	/**
	 */
	private JTextField jTextCruce = null;
	private JLabel jLabel1 = null;
	/**
	 */
	private JTextField jTextMutacion = null;
	private JLabel jLabel2 = null;
	/**
	 */
	private JTextField jTextPoblacion = null;
	private JLabel jLabel3 = null;
	/**
	 */
	private JTextField jTextGeneraciones = null;
	private JLabel jLabel4 = null;
	/**
	 */
	private JTextField jTextErrorMomentos = null;
	private JLabel jLabel5 = null;
	/**
	 */
	private JTextField jTextErrorMaxVero = null;
	/**
	 */
	private JButton jButton = null;
	private JLabel jLabel6 = null;
	private JTextField jTextErrorPercentiles = null;
	/**
	 * constructor
	 */
	public DialogoParametroAG() {
		super("Opciones Algoritmo Genetico");
		initialize();
	}
	
	public OpcionesGenetico DevolverOpciones(){
		return opciones;
	}

	/**
	 * This method initializes this
	 * @return void
	 */
	private void initialize() {
		this.setSize(419, 268);
		this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		this.setContentPane(getJContentPane());
		this.setTitle("Opciones Algoritmo Genetico");
	}
	/**
	 * This method initializes jContentPane
	 * @return  javax.swing.JPanel
	 */
	private javax.swing.JPanel getJContentPane() {
		if(jContentPane == null) {
			jLabel6 = new JLabel();
			jLabel6.setBounds(new Rectangle(22, 152, 101, 20));
			jLabel6.setText("ErrorPercentiles:");
			jLabel5 = new JLabel();
			jLabel4 = new JLabel();
			jLabel3 = new JLabel();
			jLabel2 = new JLabel();
			jLabel1 = new JLabel();
			jLabel = new JLabel();
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(null);
			jLabel.setBounds(22, 26, 116, 19);
			jLabel.setText("Probabilidad Cruce:");
			jLabel1.setBounds(21, 52, 135, 18);
			jLabel1.setText("Probabilidad Mutacion:");
			jLabel2.setBounds(21, 76, 118, 18);
			jLabel2.setText("Cantidad Poblacion:");
			jLabel3.setBounds(22, 101, 152, 20);
			jLabel3.setText("Numero de Generaciones:");
			jLabel4.setBounds(22, 132, 98, 19);
			jLabel4.setText("Error Momentos:");
			jLabel5.setBounds(22, 172, 144, 18);
			jLabel5.setText("Error Max. Verosimilitud:");
			jContentPane.add(jLabel, null);
			jContentPane.add(getJTextCruce(), null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(getJTextMutacion(), null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(getJTextPoblacion(), null);
			jContentPane.add(jLabel3, null);
			jContentPane.add(getJTextGeneraciones(), null);
			jContentPane.add(jLabel4, null);
			jContentPane.add(getJTextErrorMomentos(), null);
			jContentPane.add(jLabel5, null);
			jContentPane.add(getJTextErrorMaxVero(), null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(jLabel6, null);
			jContentPane.add(getJTextErrorPercentiles(), null);
		}
		return jContentPane;
	}
	/**
	 * This method initializes jTextCruce	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextCruce() {
		if (jTextCruce == null) {
			jTextCruce = new JTextField();
			jTextCruce.setBounds(179, 25, 218, 20);
			jTextCruce.setText("0.6");
			jTextCruce.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextCruce;
	}
	/**
	 * This method initializes jTextMutacion	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextMutacion() {
		if (jTextMutacion == null) {
			jTextMutacion = new JTextField();
			jTextMutacion.setBounds(178, 51, 218, 20);
			jTextMutacion.setText("0.1");
			jTextMutacion.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextMutacion;
	}
	/**
	 * This method initializes jTextPoblacion	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextPoblacion() {
		if (jTextPoblacion == null) {
			jTextPoblacion = new JTextField();
			jTextPoblacion.setBounds(179, 76, 217, 19);
			jTextPoblacion.setText("50");
			jTextPoblacion.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextPoblacion;
	}
	/**
	 * This method initializes jTextGeneraciones	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextGeneraciones() {
		if (jTextGeneraciones == null) {
			jTextGeneraciones = new JTextField();
			jTextGeneraciones.setBounds(180, 99, 216, 20);
			jTextGeneraciones.setText("4000");
			jTextGeneraciones.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextGeneraciones;
	}
	/**
	 * This method initializes jTextErrorMomentos	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextErrorMomentos() {
		if (jTextErrorMomentos == null) {
			jTextErrorMomentos = new JTextField();
			jTextErrorMomentos.setBounds(181, 127, 215, 19);
			jTextErrorMomentos.setText("1.0E-10");
			jTextErrorMomentos.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextErrorMomentos;
	}
	/**
	 * This method initializes jTextErrorMaxVero	
	 * @return  javax.swing.JTextField
	 */    
	private JTextField getJTextErrorMaxVero() {
		if (jTextErrorMaxVero == null) {
			jTextErrorMaxVero = new JTextField();
			jTextErrorMaxVero.setBounds(181, 171, 214, 19);
			jTextErrorMaxVero.setText("1.0E-2");
			jTextErrorMaxVero.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextErrorMaxVero;
	}
	/**
	 * This method initializes jButton	
	 * @return  javax.swing.JButton
	 */    
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(141, 202, 122, 21);
			jButton.setText("ACEPTAR");
			jButton.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					leer();
				}});
		}
		return jButton;
	}

	protected void leer() {
		try{
			opciones.ProbCruce= Double.parseDouble(jTextCruce.getText());
			opciones.ProbMutacion= Double.parseDouble(jTextMutacion.getText());
			opciones.poblacion = Integer.parseInt(jTextPoblacion.getText());
			opciones.generaciones = Integer.parseInt(jTextGeneraciones.getText());
			opciones.errorMaxDeMomentos= Double.parseDouble(jTextErrorMomentos.getText());
			opciones.errorMaxDeMaxVeros= Double.parseDouble(jTextErrorMaxVero.getText());
			setVisible(false);	
		}catch(Exception ee){
			JOptionPane.showMessageDialog(this,"Error en formato:\n"+ee.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		}	
	}

	/**
	 * This method initializes jTextErrorPercentiles	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextErrorPercentiles() {
		if (jTextErrorPercentiles == null) {
			jTextErrorPercentiles = new JTextField();
			jTextErrorPercentiles.setBounds(new Rectangle(181, 148, 215, 20));
			jTextErrorPercentiles.setText("1.0E-10");
			jTextErrorPercentiles.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					leer();
				}
			});
		}
		return jTextErrorPercentiles;
	}
}  //  @jve:decl-index=0:visual-constraint="10,10"
